<?php

namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Detective
 *
 * @ORM\Table(name="detective")
 * @ORM\Entity
 */
class Detective
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="assigned_on", type="datetime", nullable=false)
     */
    protected $assignedOn;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="assigned_till", type="datetime", nullable=false)
     */
    protected $assignedTill;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="found_on", type="datetime", nullable=true)
     */
    protected $foundOn;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="last_modified", type="datetime", nullable=false)
     */
    protected $lastModified;

    /**
     * @var \Entity\User
     *
     * @ORM\ManyToOne(targetEntity="Entity\User")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="user_id_detective", referencedColumnName="id")
     * })
     */
    protected $userDetective;

    /**
     * @var \Entity\User
     *
     * @ORM\ManyToOne(targetEntity="Entity\User")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="user_id_subject", referencedColumnName="id")
     * })
     */
    protected $userSubject;

    /**
     * @var \Entity\Country
     *
     * @ORM\ManyToOne(targetEntity="Entity\Country")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="country_id", referencedColumnName="id")
     * })
     */
    protected $country;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set assignedOn
     *
     * @param \DateTime $assignedOn
     * @return Detective
     */
    public function setAssignedOn($assignedOn)
    {
        $this->assignedOn = $assignedOn;
    
        return $this;
    }

    /**
     * Get assignedOn
     *
     * @return \DateTime 
     */
    public function getAssignedOn()
    {
        return $this->assignedOn;
    }

    /**
     * Set assignedTill
     *
     * @param \DateTime $assignedTill
     * @return Detective
     */
    public function setAssignedTill($assignedTill)
    {
        $this->assignedTill = $assignedTill;
    
        return $this;
    }

    /**
     * Get assignedTill
     *
     * @return \DateTime 
     */
    public function getAssignedTill()
    {
        return $this->assignedTill;
    }

    /**
     * Set foundOn
     *
     * @param \DateTime $foundOn
     * @return Detective
     */
    public function setFoundOn($foundOn)
    {
        $this->foundOn = $foundOn;
    
        return $this;
    }

    /**
     * Get foundOn
     *
     * @return \DateTime 
     */
    public function getFoundOn()
    {
        return $this->foundOn;
    }

    /**
     * Set lastModified
     *
     * @param \DateTime $lastModified
     * @return Detective
     */
    public function setLastModified($lastModified)
    {
        $this->lastModified = $lastModified;
    
        return $this;
    }

    /**
     * Get lastModified
     *
     * @return \DateTime 
     */
    public function getLastModified()
    {
        return $this->lastModified;
    }

    /**
     * Set userDetective
     *
     * @param \Entity\User $userDetective
     * @return Detective
     */
    public function setUserDetective(\Entity\User $userDetective = null)
    {
        $this->userDetective = $userDetective;
    
        return $this;
    }

    /**
     * Get userDetective
     *
     * @return \Entity\User 
     */
    public function getUserDetective()
    {
        return $this->userDetective;
    }

    /**
     * Set userSubject
     *
     * @param \Entity\User $userSubject
     * @return Detective
     */
    public function setUserSubject(\Entity\User $userSubject = null)
    {
        $this->userSubject = $userSubject;
    
        return $this;
    }

    /**
     * Get userSubject
     *
     * @return \Entity\User 
     */
    public function getUserSubject()
    {
        return $this->userSubject;
    }

    /**
     * Set country
     *
     * @param \Entity\Country $country
     * @return Detective
     */
    public function setCountry(\Entity\Country $country = null)
    {
        $this->country = $country;
    
        return $this;
    }

    /**
     * Get country
     *
     * @return \Entity\Country 
     */
    public function getCountry()
    {
        return $this->country;
    }
}
